package model;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the EMPLOYEE database table.
 * 
 */
@Entity
public class Employee implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="EMPLOYEE_ID")
	private long employeeId;

	@Temporal(TemporalType.DATE)
	@Column(name="EMPLOYEE_HIRED_DATE")
	private Date employeeHiredDate;

	@Column(name="EMPLOYEE_SUPERVISOR")
	private String employeeSupervisor;

	//bi-directional one-to-one association to CustomerRepresentative
	@OneToOne(mappedBy="employee")
	private CustomerRepresentative customerRepresentative;

	//bi-directional one-to-one association to Person
	@OneToOne
	@JoinColumn(name="EMPLOYEE_ID")
	private Person person;

	//bi-directional many-to-one association to WorkCenter
	@ManyToOne
	@JoinColumn(name="WORK_CENTER_ID")
	private WorkCenter workCenter;

	//bi-directional many-to-many association to Skill
	@ManyToMany(mappedBy="employees")
	private List<Skill> skills;

	public Employee() {
	}

	public long getEmployeeId() {
		return this.employeeId;
	}

	public void setEmployeeId(long employeeId) {
		this.employeeId = employeeId;
	}

	public Date getEmployeeHiredDate() {
		return this.employeeHiredDate;
	}

	public void setEmployeeHiredDate(Date employeeHiredDate) {
		this.employeeHiredDate = employeeHiredDate;
	}

	public String getEmployeeSupervisor() {
		return this.employeeSupervisor;
	}

	public void setEmployeeSupervisor(String employeeSupervisor) {
		this.employeeSupervisor = employeeSupervisor;
	}

	public CustomerRepresentative getCustomerRepresentative() {
		return this.customerRepresentative;
	}

	public void setCustomerRepresentative(CustomerRepresentative customerRepresentative) {
		this.customerRepresentative = customerRepresentative;
	}

	
	public Person getPerson() {
		return this.person;
	}

	public void setPerson(Person person) {
		this.person = person;
	}

	
	public WorkCenter getWorkCenter() {
		return this.workCenter;
	}

	public void setWorkCenter(WorkCenter workCenter) {
		this.workCenter = workCenter;
	}

	
	public List<Skill> getSkills() {
		return this.skills;
	}

	public void setSkills(List<Skill> skills) {
		this.skills = skills;
	}

	
}